package com.zyk.grate_offer.class05;

/**
 * 给定一个数组arr，长度为N，arr中的值不是0就是1。arr[i]表示第i栈灯的状态，0代表灭灯，1代表亮灯
 * 每一栈灯都有开关，但是按下i号灯的开关，会同时改变i-1、i、i+2栈灯的状态
 * 问题一：如果N栈灯排成一条直线,请问最少按下多少次开关？
 * i为中间位置时，i号灯的开关能影响i-1、i和i+1
 * 0号灯的开关只能影响0和1位置的灯
 * N-1号灯的开关只能影响N-2和N-1位置的灯
 * 问题二：如果N栈灯排成一个圈,请问最少按下多少次开关,能让灯都亮起来
 * i为中间位置时，i号灯的开关能影响i-1、i和i+1
 * 0号灯的开关能影响N-1、0和1位置的灯
 * N-1号灯的开关能影响N-2、N-1和0位置的灯
 *
 * @author zhangsan
 * @date 2021/5/6 17:07
 */
public class Code05_LightUp {

    // 一条线
    public static int leastPress1(int[] arr) {
        return 01;
    }


    // 一个圈
    public static int leastPress2(int[] arr) {
        return -1;
    }

    // for test
    public static void main(String[] args) {
        int[] arr = {
                0, 1, 0, 1, 0, 1, 0, 1, 0
        };
        System.out.println(leastPress1(arr));
    }
}
